<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<!-- http://www.dpawson.co.uk/xsl/sect2/defaultrule.html  -->
	<xsl:template match="/">
	<xsl:apply-templates select="Order"/>
	</xsl:template>
	

	<xsl:template match="Order">
		<xsl:element name="Order" namespace="http://wgrus.com/Accounting">
			<xsl:element name="Customer">
				<xsl:element name="CustomerId">
					<xsl:value-of select="Customer/KundeId" />
				</xsl:element>
				<xsl:element name="Navn">
					<xsl:value-of select="Customer/Navn" />
				</xsl:element>
			</xsl:element>
			<xsl:element name="OrderDetails">
				<xsl:element name="OrdreId">
					<xsl:value-of select="number(0)" />
				</xsl:element>
				<xsl:element name="LeveringAtt">
					<xsl:value-of select="OrderDetails/LeveringAtt" />
				</xsl:element>
				<xsl:element name="OrderRef">
					<xsl:value-of select="OrderDetails/OrdreReference" />
				</xsl:element>

				<xsl:element name="LeveringNavn">
					<xsl:value-of select="OrderDetails/LeveringNavn" />
				</xsl:element>
				<xsl:element name="LeveringGade">
					<xsl:value-of select="OrderDetails/LeveringGade" />
				</xsl:element>
				<xsl:element name="LeveringPostNr">
					<xsl:value-of select="OrderDetails/LeveringPostNr" />
				</xsl:element>
				<xsl:element name="LeveringBy">
					<xsl:value-of select="OrderDetails/LeveringBy" />
				</xsl:element>
				<xsl:element name="Total">

					<!-- http://techmantium.com/xml-transformation-stylesheets-xsl/ -->
					<xsl:variable name="count"
						select="count(/Order/OrderDetails/OrderLines/OrderLine)" />
					<xsl:call-template name="Totals">
						<xsl:with-param name="curSum">
							<xsl:value-of select="number(0)" />
						</xsl:with-param>
						<xsl:with-param name="count">
							<xsl:value-of select="number($count)" />
						</xsl:with-param>
					</xsl:call-template>

				</xsl:element>

				<xsl:element name="Orderlines">
					<xsl:apply-templates select="/Order/OrderDetails/OrderLines/OrderLine" />
				</xsl:element>
			</xsl:element>
		</xsl:element>
	</xsl:template>




	<xsl:template match="OrderLine">
		<xsl:element name="OrderLine">
			<xsl:element name="Id">
				<xsl:number value="position()" />
			</xsl:element>
			<xsl:element name="OrdreId">
				<xsl:value-of select="number(0)" />
			</xsl:element>
			<xsl:element name="VareId">
				<xsl:value-of select="VareId" />
			</xsl:element>
			<xsl:element name="VareBeskrivelse">
				<xsl:value-of select="VareBeskrivelse" />
			</xsl:element>
			<xsl:element name="Enhedspris">
				<xsl:value-of select="Enhedspris" />
			</xsl:element>
			<xsl:element name="Antal">
				<xsl:value-of select="Antal" />
			</xsl:element>
			<xsl:element name="Total">
				<xsl:value-of select="Antal * Enhedspris" />
			</xsl:element>
		</xsl:element>
	</xsl:template>


	<!-- http://techmantium.com/xml-transformation-stylesheets-xsl/ -->
	<xsl:template name="Totals">
		<xsl:param name="curSum" />
		<xsl:param name="count" />
		<xsl:variable name="qty"
			select="number(/Order/OrderDetails/OrderLines/OrderLine[number($count)]/Antal)" />
		<xsl:variable name="value"
			select="number(/Order/OrderDetails/OrderLines/OrderLine[number($count)]/Enhedspris)" />
		<xsl:variable name="sum" select="number($qty * $value)" />
		<xsl:variable name="loopSum" select="number($curSum + $sum)" />
		<xsl:choose>
			<xsl:when test="number($count - 1) &gt; 0">
				<xsl:call-template name="Totals">
					<xsl:with-param name="curSum">
						<xsl:value-of select="number($loopSum)" />
					</xsl:with-param>
					<xsl:with-param name="count">
						<xsl:value-of select="number($count - 1)" />
					</xsl:with-param>
				</xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="format-number($loopSum,'#.00')" />
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>


</xsl:stylesheet>